###################################################################################################
# Legislative Term Limits and Polarization ########################################################
# Analysis Central File ###########################################################################
# Michael Olson and Jon Rogowski ##################################################################
###################################################################################################

# This script calls scripts that run analysis for "State Legislative Term Limits and Polarization"
# by Olson and Rogowski.

###################################################################################################
# working directory and packages ##################################################################
###################################################################################################

  setwd("C:/Users/flyfi/Dropbox/Research/Term limits & polarization/replication_flat") # change this, but leave "replication_package" at the end
  
  packs <- installed.packages()[,1]
  if(!is.element("readstata13",packs)){install.packages("readstata13")}; require("readstata13")
  if(!is.element("foreign",packs)){install.packages("foreign")}; require("foreign")
  if(!is.element("data.table",packs)){install.packages("data.table")}; require("data.table")
  if(!is.element("tidyr",packs)){install.packages("tidyr")}; require("tidyr")
  if(!is.element("stringi",packs)){install.packages("stringi")}; require("stringi")
  if(!is.element("stringr",packs)){install.packages("stringr")}; require("stringr")
  if(!is.element("dplyr",packs)){install.packages("dplyr")}; require("dplyr")
  if(!is.element("multiwayvcov",packs)){install.packages("multiwayvcov")}; require("multiwayvcov")
  if(!is.element("lmtest",packs)){install.packages("lmtest")}; require("lmtest")
  if(!is.element("stargazer",packs)){install.packages("stargazer")}; require("stargazer")
  if(!is.element("ggplot2",packs)){install.packages("ggplot2")}; require("ggplot2")
  if(!is.element("DataCombine",packs)){install.packages("DataCombine")}; require("DataCombine")
  if(!is.element("lfe",packs)){install.packages("lfe")}; require("lfe")
  if(!is.element("Matching",packs)){install.packages("Matching")}; require("Matching")
  
  output_path <- paste(getwd(),"/",sep="") # stores results to the output file
  storewd     <- getwd() # resets working directory when necessary
  
###################################################################################################
# load marginal effects function ##################################################################
###################################################################################################
  
    source("./b.continuous_margeff_function.R")

###################################################################################################
# analysis scripts ################################################################################
###################################################################################################

# main analysis file
  
    source("./c.aggregate_analysis_2016.R")
  
# dime polarization analysis
  
    source("./d.dime_aggregate_analysis.R")
  
# competitive races analysis
  
    source("./e.competitiveness_analysis.R")
  
# legislative professionalism interactions
  
    source("./f.legprof_interactions.R")
  
# campaign finance outcomes
  
    source("./g.dime_campaign_finance_analysis.R")
  
# leader status analysis
  
    source("./h.individual_leadership_analysis.R")
  
# marginal district analysis
  
    source("./i.individual_margdist_analysis.R")
  
# shor-mccarty cohort analysis
  
    source("./j.individual_sm_analysis.R")
  
  